_SSSS,_ssss Enter single-user mode. When the system changes to this state as
the result of a command, the terminal from which the command was
executed becomes the system console.
This is the only run level that doesn't require the existence of a
properly formatted _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb file. If this file does not exist,
then by default the only legal run level that _iiii_nnnn_iiii_tttt can enter is
the single-user mode.
The set of filesystems mounted and the list of processes killed
when a system enters system state _ssss are not always the same; which
filesystems are mounted and which processes are killed depends on
the method used for putting the system into state _ssss and the rules
in force at your computer site. The following paragraphs describe
state _ssss in three circumstances: when the system is brought up to _ssss
with _iiii_nnnn_iiii_tttt; when the system is brought down (from another state) to
_ssss with _iiii_nnnn_iiii_tttt; and when the system is brought down to _ssss with
_ssss_hhhh_uuuu_tttt_dddd_oooo_wwww_nnnn.
When the system is brought up to _ssss with _iiii_nnnn_iiii_tttt, the only filesystem
mounted is _//// (root). Filesystems for users' files are not
mounted. With the commands available on the mounted filesystems,
you can manipulate the filesystems or transition to other system
states. Only essential kernel processes are kept running.
When the system is brought down to _ssss with _iiii_nnnn_iiii_tttt, all mounted
filesystems remain mounted and all processes started by _iiii_nnnn_iiii_tttt that
should be running only in multi-user mode are killed. Because all
login related processes are killed, users cannot access the system
while it's in this state. In addition, any process for which the
_uuuu_tttt_mmmm_pppp file has an entry is killed. Other processes not started
directly by _iiii_nnnn_iiii_tttt (such as _cccc_rrrr_oooo_nnnn) remain running.
When you change to _ssss with _ssss_hhhh_uuuu_tttt_dddd_oooo_wwww_nnnn, the system is restored to the
state in which it was running when you first booted the machine
and came up in single-user state, as described above. (The
_pppp_oooo_wwww_eeee_rrrr_dddd_oooo_wwww_nnnn(1M) command takes the system through state _ssss on the way
to turning off the machine; thus you can't use this command to put
the system in system state _ssss.)
When an IRIX system is booted, _iiii_nnnn_iiii_tttt is invoked and the following occurs.
First, _iiii_nnnn_iiii_tttt looks in _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb for the _iiii_nnnn_iiii_tttt_dddd_eeee_ffff_aaaa_uuuu_llll_tttt entry (see _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb(4)).
If there is one, _iiii_nnnn_iiii_tttt usually uses the run level specified in that entry
as the initial run level for the system. If there is no _iiii_nnnn_iiii_tttt_dddd_eeee_ffff_aaaa_uuuu_llll_tttt
entry in _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb, _iiii_nnnn_iiii_tttt requests that the user enter a run level from the
virtual system console. If an _SSSS or _ssss is entered, _iiii_nnnn_iiii_tttt takes the system
to single-user state. In the single-user state the virtual console
terminal is assigned to the user's terminal and is opened for reading and
writing. The command _////_ssss_bbbb_iiii_nnnn_////_ssss_uuuu_llll_oooo_gggg_iiii_nnnn is invoked, which prompts the user
for a root password (see _ssss_uuuu_llll_oooo_gggg_iiii_nnnn(1M)), and a message is generated on the
physical console saying where the virtual console has been relocated. If
_////_bbbb_iiii_nnnn_////_ssss_uuuu_llll_oooo_gggg_iiii_nnnn cannot be found, then _iiii_nnnn_iiii_tttt attempts to launch a shell:
looking first for _////_bbbb_iiii_nnnn_////_cccc_ssss_hhhh, then for _////_ssss_bbbb_iiii_nnnn_////_ssss_hhhh, then finally for _////_bbbb_iiii_nnnn_////_kkkk_ssss_hhhh.
Use either _iiii_nnnn_iiii_tttt or _tttt_eeee_llll_iiii_nnnn_iiii_tttt to signal _iiii_nnnn_iiii_tttt to change the run level of the
system. Note that if the shell is terminated (via an end-of-file), _iiii_nnnn_iiii_tttt
only re-initializes to the single-user state if the _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb file does not
exist.
If a _0000 through _6666 is entered, _iiii_nnnn_iiii_tttt enters the corresponding run level.
Run levels _0000, _5555, and _6666 are reserved states for shutting the system down.
Run levels _2222, _3333, and _4444 are available as multi-user operating states.
If this is the first time since power up that _iiii_nnnn_iiii_tttt has entered a run
level other than single-user state, _iiii_nnnn_iiii_tttt first scans _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb for _bbbb_oooo_oooo_tttt and
_bbbb_oooo_oooo_tttt_wwww_aaaa_iiii_tttt entries (see _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb(4)). These entries are performed before
any other processing of _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb takes place, providing that the run level
entered matches that of the entry. In this way any special
initialization of the operating system, such as mounting filesystems, can
take place before users are allowed onto the system. _iiii_nnnn_iiii_tttt then scans
_iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb and executes all other entries that are to be processed for that
run level.
To spawn each process in _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb, _iiii_nnnn_iiii_tttt reads each entry and for each
entry that should be respawned, it forks a child process. After it has
spawned all of the processes specified by _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb, _iiii_nnnn_iiii_tttt waits for one of
its descendant processes to die, a powerfail signal, or a signal from
another _iiii_nnnn_iiii_tttt or _tttt_eeee_llll_iiii_nnnn_iiii_tttt process to change the system's run level. When
one of these conditions occurs, _iiii_nnnn_iiii_tttt re-examines _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb. New entries
can be added to _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb at any time; however, _iiii_nnnn_iiii_tttt still waits for one of
the above three conditions to occur before re-examining _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb. To get
around this, the _iiii_nnnn_iiii_tttt _QQQQ (or _iiii_nnnn_iiii_tttt _qqqq) command wakes _iiii_nnnn_iiii_tttt to re-examine
_iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb immediately. Note, however, that if the _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb has been edited
to change baud-rates, those changes only take effect when new _gggg_eeee_tttt_tttt_yyyy
processes are spawned to oversee those ports. Use _kkkk_iiii_llll_llll_aaaa_llll_llll _gggg_eeee_tttt_tttt_yyyy to
terminate all current _gggg_eeee_tttt_tttt_yyyy processes, then _iiii_nnnn_iiii_tttt _QQQQ to re-examine the
_iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb and respawn them all again with the new baud-rates.
When _iiii_nnnn_iiii_tttt comes up at boot time and whenever the system changes from the
single-user state to another run state, _iiii_nnnn_iiii_tttt sets the _iiii_oooo_cccc_tttt_llll(2) states of
the virtual console to those modes saved in the file _////_eeee_tttt_cccc_////_iiii_oooo_cccc_tttt_llll_...._ssss_yyyy_ssss_cccc_oooo_nnnn.
This file is written by _iiii_nnnn_iiii_tttt whenever the single-user state is entered.
When a run level change request is made _iiii_nnnn_iiii_tttt sends the warning signal
(_SSSS_IIII_GGGG_TTTT_EEEE_RRRR_MMMM) to all processes that are undefined in the target run level.
_iiii_nnnn_iiii_tttt waits five seconds before forcibly terminating these processes via
the kill signal (_SSSS_IIII_GGGG_KKKK_IIII_LLLL_LLLL).
When _iiii_nnnn_iiii_tttt receives a signal telling it that a process it spawned has
died, it records the fact and the reason it died in _////_vvvv_aaaa_rrrr_////_aaaa_dddd_mmmm_////_uuuu_tttt_mmmm_pppp and
_////_vvvv_aaaa_rrrr_////_aaaa_dddd_mmmm_////_wwww_tttt_mmmm_pppp if it exists (see _wwww_hhhh_oooo(1)). A history of the processes
spawned is kept in _////_vvvv_aaaa_rrrr_////_aaaa_dddd_mmmm_////_wwww_tttt_mmmm_pppp.
If _iiii_nnnn_iiii_tttt receives a _pppp_oooo_wwww_eeee_rrrr_ffff_aaaa_iiii_llll signal (_SSSS_IIII_GGGG_PPPP_WWWW_RRRR) it scans _iiii_nnnn_iiii_tttt_tttt_aaaa_bbbb for special
entries of the type _pppp_oooo_wwww_eeee_rrrr_ffff_aaaa_iiii_llll and _pppp_oooo_wwww_eeee_rrrr_wwww_aaaa_iiii_tttt. These entries are invoked
(if the run levels permit) before any further processing takes place. In
this way _iiii_nnnn_iiii_tttt can perform various cleanup and recording functions during
the powerdown of the operating system.
tttteeeelllliiiinnnniiiitttt
_tttt_eeee_llll_iiii_nnnn_iiii_tttt, which is linked to _////_ssss_bbbb_iiii_nnnn_////_iiii_nnnn_iiii_tttt, is used to direct the actions of
_iiii_nnnn_iiii_tttt. It takes a one-character argument and signals _iiii_nnnn_iiii_tttt to take the